home *** CD-ROM | disk | FTP | other *** search
- // This script will no longer overwrite your current onmouseover and
- // onmouseout attributes - it will instead skip those links. If you would
- // still like to fade them, add findLink(this.id) to your onmouseover
- // and clearFade() to your onmouseout, like so -
- // <a href="#" onmouseover="findLink(this.id); yourFunction()"
- // onmouseout="clearFade(); yourSecondFunction()">
- // Make sure to put it BEFORE any "return" statements otherwise
- // the fade will not execute.
-
- var fadeTo = "ff5555";
-
- // Fade in colour increment/decrement by
- var fiBy = 6;
-
- // Fade out colour increment/decrement by
- var foBy = 6;
-
- // Speed - milliseconds between each colour change in the fade
- // Less than 10ms doesn't really make all that much difference, so
- // 10 is the minimum effective value.
- var speed = 20;
-
- // Class name of links to NOT fade (i.e. ignore)
- // var ignoreClass = "somebogusvalue" if you don't want to
- // use this feature. Alternatively, add onmouseover="clearFade()"
- // to the link you do not wish to fade.
- var ignoreClass = "ignore";
-
- // No more changes required (unless you know what you are doing)
- // Enjoy... and email me and let me know what site(s) you are using it on :)
- var opera, ie, dom, x = 0, oc, fader, ocs = new Array();
-
- if (navigator.userAgent.indexOf("Opera") != -1) opera = true
- else if (document.all && !opera) ie = true
- else if (!document.all && document.getElementById) dom = true;
-
- function convertRGB(z)
- {
- var newfcS = "", splitter = "";
- splitter = z.split(",");
- splitter[0] = parseInt(splitter[0].substring(4, splitter[0].length));
- splitter[1] = parseInt(splitter[1]);
- splitter[2] = parseInt(splitter[2].substring(0, splitter[2].length-1));
- for (var q = 0; q < 3; q++)
- {
- splitter[q] = splitter[q].toString(16);
- if (splitter[q].length == 1) splitter[q] = "0" + splitter[q];
- newfcS += splitter[q];
- }
- return newfcS;
- }
-
- function currentColour(index)
- {
- var temp, cc;
- if (opera) cc = document.links[index].style.color
- else if (ie) cc = document.links[index].currentStyle.color
- else if (dom) cc = document.defaultView.getComputedStyle(document.links[index], '').getPropertyValue("color");
- if (cc.length == 4 && cc.substring(0, 1) == "#")
- {
- temp = "";
- for (var a = 0; a < 3; a++)
- temp += cc.substring(a+1, a+2) + cc.substring(a+1, a+2);
- cc = temp;
- }
- else if (cc.indexOf("rgb") != -1) cc = convertRGB(cc)
- else if (cc.length == 7) cc = cc.substring(1, 7)
- else cc = fadeTo;
- return cc;
- }
-
-
- function convert2Dec(hex)
- {
- var rgb = new Array();
- for (var u = 0; u < 3; u++)
- rgb[u] = parseInt(hex.substring(u*2, u*2+2), 16);
- return rgb;
- }
-
- function newRGB(f, n, d)
- {
- var change;
- if (d == 1) change = fiBy
- else change = foBy;
- for (var g = 0; g < 3; g++)
- {
- if (n[g] > f[g] && n[g] - change >= 0) n[g] -= change;
- if (n[g] < f[g] && n[g] + change <= 255) n[g] += change;
- }
- return n;
- }
-
- function fade(index, d)
- {
- var fc, nc, temp = new Array(), finished = false;
- nc = convert2Dec(currentColour(index));
- if (d == 1) fc = convert2Dec(fadeTo)
- else fc = convert2Dec(ocs[x]);
- temp = convert2Dec(currentColour(index));
- nc = newRGB(fc, nc, d);
- if ((nc[0] == temp[0]) && (nc[1] == temp[1]) && (nc[2] == temp[2]))
- finished = true;
- if (!finished) document.links[x].style.color = "rgb(" + nc[0] + "," + nc[1] + "," + nc[2] + ")"
- else clearInterval(fader);
- }
-
- function findLink(over)
- {
- if (document.layers) return;
- if (fader)
- {
- clearInterval(fader);
- document.links[x].style.color = "#" + ocs[x];
- }
- if (over && !this.id) this.id = over;
- x = 0;
- while (!(this.id == document.links[x].id) && (x < document.links.length))
- x++;
- if (this.id == document.links[x].id)
- {
- oc = currentColour(x);
- fader = setInterval("fade(" + x + ", 1)", speed);
- }
- }
-
- function clearFade()
- {
- if (document.layers) return;
- if (fader) clearInterval(fader);
- fader = setInterval("fade(" + x + ", 0)", speed);
- }
-
- function init()
- {
- for (var i = 0; i < document.links.length; i++)
- {
- ocs[i] = currentColour(i);
- var currentOver = document.links[i].onmouseover;
- var currentOut = document.links[i].onmouseout;
- var ignoreIt = document.links[i].className == ignoreClass;
- if (!ignoreIt) document.links[i].id = "link" + i;
- if (!currentOver && !currentOut && !ignoreIt)
- {
- document.links[i].onmouseover = findLink;
- document.links[i].onmouseout = clearFade;
- }
- }
- }
-
- function clickIE4(){
- if (event.button==2) {
- return false;
- }
- }
-
- if (opera || ie || dom) window.onload = init;
- document.onmousedown=clickIE4;
- document.oncontextmenu=new Function("return false");